import java.util.ArrayList;
import java.util.Collections;
import java.util.HashMap;
import java.util.List;
import java.util.Map;


public class Application
{

    private static final int NUMBER_ELUS_BY_ENTRY = 10;
    private static final int NUMBER_ENTRIES = 50;

    /**
     * @param args
     */
    public static void main( String[] args )
    {

        Map<String, Map<String, InscriptionOrateur>> mapMap = new HashMap<String, Map<String, InscriptionOrateur>>( );
        List<GroupePolitique> listGroupe = new ArrayList<GroupePolitique>( );
        //creation des groupes test
        listGroupe.add( new GroupePolitique( 0, "PS", 4 ) );
        listGroupe.add( new GroupePolitique( 1, "UMP", 3 ) );
        listGroupe.add( new GroupePolitique( 2, "VERT", 5 ) );
        listGroupe.add( new GroupePolitique( 3, "PC", 2 ) );
        listGroupe.add( new GroupePolitique( 4, "SOPRA", 0 ) );
        listGroupe.add( new GroupePolitique( 5, "NI", 1 ) );

        for ( int j = 0; j < NUMBER_ENTRIES; j++ )
        {
            mapMap.put( String.valueOf( j ), new HashMap<String, InscriptionOrateur>( ) );
            int indexGroupe = 0;
            for ( int i = 0; i < NUMBER_ELUS_BY_ENTRY; i++ )
            {
                indexGroupe = (int) Math.floor( Math.random( ) * 5 );
                mapMap.get( String.valueOf( j ) ).put( String.valueOf( i ),
                        new InscriptionOrateur( listGroupe.get( indexGroupe ), String.valueOf( Math.random( ) ) ) );
            }

        }
        long currentTimeMillis = System.currentTimeMillis( );

        System.out.println( mapMap );

        for ( int j = 0; j < NUMBER_ENTRIES; j++ )
        {
            List<InscriptionOrateur> values = new ArrayList<InscriptionOrateur>( mapMap.get( String.valueOf( j ) )
                    .values( ) );
            tournicoter( values, listGroupe );

            List<String> cles = new ArrayList<String>( mapMap.get( String.valueOf( j ) ).keySet( ) );
            Collections.sort( cles, new InscriptionComparator( mapMap.get( String.valueOf( j ) ) ) );

            for ( String key : cles )
            {
                System.out.println( mapMap.get( String.valueOf( j ) ).get( key ) );
            }
            System.out.println( );
            System.out.println( );

        }
        System.out.println( "Time to sort (ms) for " + NUMBER_ENTRIES + " entries and " + NUMBER_ELUS_BY_ENTRY
                + " elus by entries : " + ( System.currentTimeMillis( ) - currentTimeMillis ) );
    }
    
    public static void tournicoter( List<InscriptionOrateur> list, List<GroupePolitique> listGroupe )
    {

    }

}
